<?  
  set_time_limit(4500);
  /* Se asegura que el archivo es incluido por el index */
    defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Componente_exe( $this );
    
	class Componente_exe extends Exe
	{
	function Componente_exe( &$oModule )
		{
			$this->Exe( $oModule );
		}
		// AGREGAR_COMPONENTE
		function insert()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Componente_frm' );
			extract( $oForm->getFieldArray() );
			// Busca el siguiente id
			$ncComponente      = $this->oDatabase->nextKey("gtComponente", "ncComponente"  );
			list ( $cModulo, $cAccion) = explode('|' , $cModuloAccion);
			if ( $cListaParam )
			{
				$cParametros = '';
				foreach( explode( ',', $cListaParam ) as $cParametro )
				{
					$cValue = getParam($cParametro);
					if ( $cValue  ) $cParametros .= $cParametro . '=' . $cValue  .'&amp;';
				}
				$cParametros = substr($cParametros , 0, -5);
			}
			$this->oDatabase->insert("gtComponente"
								,"ncComponente", $ncComponente
								,"ncEstadoPublicacion", $ncEstadoPublicacion
								,"cdComponente", $cdComponente
								,"cModulo", $cModulo
								,"cAccion", $cAccion
								,"cParametros", $cParametros
								,"cClass", $cClass
								,"dAlta", date('Y-m-d')
								,"ncAlta", $this->oModule->oUserSession->getUser()
								,"dModificacion", date('Y-m-d')
								,"ncModificacion", $this->oModule->oUserSession->getUser());
			//$this->setInputData( $ncComponente, $cdComponente );
			return $ncComponente;
		}
		
		// ELIMINAR_COMPONENTE
		function delete()
		{
			$ncComponente = getParam( 'ncComponente' );
			$this->oDatabase->delete("gtComponente","ncComponente", $ncComponente );
		}
		
		// MODIFICAR_COMPONENTE
		function update()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Componente_frm' );
			extract( $oForm->getFieldArray() );
			list ( $cModulo, $cAccion) = explode('|' , $cModuloAccion);
			if ( $cListaParam )
			{
				$cParametros = '';
				foreach( explode( ',', $cListaParam ) as $cParametro )
				{
					$cValue = getParam($cParametro);
					if ( $cValue  ) $cParametros .= $cParametro . '=' . $cValue  .'&amp;';
				}
				$cParametros = substr($cParametros , 0, -5);
			}			
			$this->oDatabase->update("gtComponente"
								,"ncEstadoPublicacion", $ncEstadoPublicacion
								,"cdComponente", $cdComponente
								,"cModulo", $cModulo
								,"cAccion", $cAccion
								,"cParametros", $cParametros
								,"cClass", $cClass
								,"dModificacion", date('Y-m-d')
								,"ncModificacion", $this->oModule->oUserSession->getUser()
								,"WHERE"
								 ,"ncComponente", $ncComponente);
			//$this->setInputData( $ncComponente, $cdComponente );
		}
	}
?>